#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2021/6/10 10:53
# @Author  : fuchen'en
# @Description:

import sys
import pika

credentials = pika.PlainCredentials('test', 'test123')
parameters = pika.ConnectionParameters(host='10.0.20.66',
                                       port='5672',
                                       virtual_host='/',
                                       credentials=credentials)
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
# 创建队列,并持久化
channel.queue_declare('task_queue', durable=True)

# 通过命令行参数来控制产生的消息
message = ' '.join(sys.argv[1:]) or "hello world!"

# 消息不能直接发送到队列，需要交换机（exchange）来进行，这里我们采用空字符表示的默认交换机
channel.basic_publish(exchange='', routing_key='task_queue', body=message, properties=pika.BasicProperties(
    delivery_mode=2  # 消息持久化
))
print(' [x] send {!r}'.format(message))

# 在退出之前，我们需要确认网络缓存已经被刷新、消息已经投递到RabbitMQ。通过安全关闭连接可以做到这一点
connection.close()
